<?php

$dbName = $_GET['dbName'];
$dbTableName = $_GET['dbTableName'];
$page = isset($_GET['page']) ? $_GET['page'] : 0;

$db = DBAdmin::getInstance()->getDatabase($dbName);
$table = $db->getTable($dbTableName);
//число записей на страницу
 $maxCount = 10;

//получение всех записей
$aFields = $table->getAllFields();
//получение ключей
$keyField = $table->getKeyField();

//добавление данных в таблицу
if (isset($_REQUEST['addData'])) {

    $aFieldsName = array();
    $aFieldsValue = array();

    //перебираем записи в таблице
    foreach ($aFields as $field) {
        //если передан параметр для данного столбца и не autoincrement
    
        if (isset($_REQUEST[$field['Field']]) && ($field['Extra'] != 'auto_increment')) {
            //добавляем массив
            $aFieldsName[] = $field['Field'];
            $aFieldsValue[] = "'" . $_REQUEST[$field['Field']] . "'";
        }
    }
    //вызываем метод добавления данных
	
    $table->insertData($aFieldsName, $aFieldsValue);
}

$aParams = $_REQUEST;
//добавление столбца

if (isset($aParams['createField'])) {
    
    // убираем лишние параметры unset
    /// TODO: передавать поля в массиве
    unset($aParams['createField']);
    unset($aParams['dbName']);
    unset($aParams['dbTableName']);

    $aFields = array();
    
    $table->createFields($aParams);
   
}
$aFields = $table->getAllFields();
//удаление столбца
if (isset($_REQUEST['deleteField'])){
    $table->deleteField($_REQUEST['fieldName']);
}

//удаление данных
if (isset($_REQUEST['delete'])) {
    $table->delete($keyField, $_REQUEST[$keyField]);
}
//редактирование данных
if (isset($_REQUEST['edit'])) {
    $aNewValues = array();

    foreach ($aFields as $field) {

        if (isset($_REQUEST[$field['Field']])) {

            $aNewValues[$field['Field']] = $_REQUEST[$field['Field']];
        }
    }

    $table->update($aNewValues);
}

//пагинация
$tableData = $table->getData($page, $maxCount);
$count = $table->getCount();
$countPage = ceil($count / $maxCount);

